JavaScript-範圍鏈(scope chain)

外部環境參照

每個執行環境都會有一個外部環境參照,用意是當使用變數時,JavaScript不只會在當前的執行環境中尋找變數,也會到外部環境參眾中尋找變數

1
2
3
4
5
6
7
8
9
function b(){
console.log(myVar);
}
function a(){
var myVar = 2;
b();
}
var myVar = 1;
a();

範圍鍊

當在目前執行環境找不到變數或函式時,JavaScript會往外部環境參照找,若沒有找到,則再外繼續往下一層的外部環境找,一直往範圍鍊下面找,直到最底層的全域環境中。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
function c(){
console.log(myVAr);//1
}
function a(){
function b(){
console.log(myVAr);//2
}
var myVar = 2;
b();
c();
}

var myVar = 1;
a();

注意!
在範圍鍊中,每個執行環境的外部環境參照與「執行堆的上下位置」沒有關係,而是取決於「程式碼中的物理位置

© 2020 Leah's Blog All Rights Reserved. 本站访客数人次 本站总访问量
Theme by hiero